@@ -53,10 +53,13 @@ $ -> |
||
53 | 53 |
updateDropdownData = (form_data, element, data) -> |
54 | 54 |
returnedResults[form_data.attribute] = {text: 'Options', children: data} |
55 | 55 |
$(element).trigger('change') |
56 |
+ $("input[role~=completable]").off 'select2-opening', select2OpeningCallback |
|
56 | 57 |
$(element).select2('open') |
58 |
+ $("input[role~=completable]").on 'select2-opening', select2OpeningCallback |
|
57 | 59 |
|
58 |
- $("input[role~=completable]").on 'select2-open', (e) -> |
|
60 |
+ select2OpeningCallback = (e) -> |
|
59 | 61 |
form_data = getFormData(e.currentTarget) |
62 |
+ delete returnedResults[form_data.attribute] if returnedResults[form_data.attribute] && !$(e.currentTarget).data('cacheResponse') |
|
60 | 63 |
return if returnedResults[form_data.attribute] |
61 | 64 |
|
62 | 65 |
$.ajax '/agents/complete', |
@@ -67,10 +70,12 @@ $ -> |
||
67 | 70 |
error: (data) -> |
68 | 71 |
updateDropdownData(form_data, e.currentTarget, [{id: undefined, text: 'Error loading data.'}]) |
69 | 72 |
|
73 |
+ $("input[role~=completable]").on 'select2-opening', select2OpeningCallback |
|
74 |
+ |
|
70 | 75 |
$("input[type=radio][role~=form-configurable]").change (e) -> |
71 | 76 |
input = $(e.currentTarget).parents().siblings("input[data-attribute=#{$(e.currentTarget).data('attribute')}]") |
72 | 77 |
if $(e.currentTarget).val() == 'manual' |
73 | 78 |
input.removeClass('hidden') |
74 | 79 |
else |
75 | 80 |
input.val($(e.currentTarget).val()) |
76 |
- input.addClass('hidden') |
|
81 |
+ input.addClass('hidden') |
@@ -32,7 +32,7 @@ module FormConfigurable |
||
32 | 32 |
options = args.extract_options!.reverse_merge(roles: [], type: :string) |
33 | 33 |
|
34 | 34 |
if args.all? { |arg| arg.is_a?(Symbol) } |
35 |
- options.assert_valid_keys([:type, :roles, :values, :ace]) |
|
35 |
+ options.assert_valid_keys([:type, :roles, :values, :ace, :cache_response]) |
|
36 | 36 |
end |
37 | 37 |
|
38 | 38 |
if options[:type] == :array && (options[:values].blank? || !options[:values].is_a?(Array)) |
@@ -43,7 +43,7 @@ class FormConfigurableAgentPresenter < Decorator |
||
43 | 43 |
@view.concat(@view.text_field_tag "agent[options][#{attribute}]", value, html_options.merge(:class => "form-control #{@agent.send(:boolify, value) != nil ? 'hidden' : ''}")) |
44 | 44 |
end |
45 | 45 |
when :array, :string |
46 |
- @view.text_field_tag "agent[options][#{attribute}]", value, html_options.merge(:class => 'form-control') |
|
46 |
+ @view.text_field_tag "agent[options][#{attribute}]", value, html_options.deep_merge(:class => 'form-control', data: {cache_response: data[:cache_response] != false}) |
|
47 | 47 |
end |
48 | 48 |
end |
49 |
-end |
|
49 |
+end |